package com.chenfan.mcn.model.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author tangwei
 * Date:     2021/1/21 15:57
 * Description: 收入合同导出
 */
@Data
public class IncomeContractExportVO implements Serializable {

    private static final long serialVersionUID = 6931013408933633169L;

    /**
     * 主键id
     */
    private Long id;

    /**
     * 合同编号
     */
    @Excel(name = "收入合同编号", orderNum = "0")
    private String contractCode;

    /**
     * 合同类型
     */
    @Excel(name = "合同类型", orderNum = "1", replace = {"年度优惠-收入合同_0", "年度优惠-形式合同_1", "散单-收入合同_2", "散单-形式合同_3", "原框架合同_4", "框架合同_5", "_null"})
    private Integer contractType;

    /**
     * 客户id
     */
    private Long customerId;

    /**
     * 客户中文名
     */
    @Excel(name = "客户", orderNum = "2")
    private String customerName;

    /**
     * 钉钉合同审批编号
     */
    @Excel(name = "钉钉合同审批编号", orderNum = "2")
    private String dingdingContractCode;


    /**
     * 折扣审批单编号
     */
    @Excel(name = "折扣审批单编号", orderNum = "3")
    private String discountCode;

    /**
     * 年框合同编号
     */
    @Excel(name = "年框合同编号", orderNum = "4")
    private String yearContractCode;

    /**
     * 客户返点审批单号
     */
    @Excel(name = "客户返点审批单号", orderNum = "5")
    private String rebateContractCode;

    /**
     * 是否含直播全案
     */
    @Excel(name = "是否含直播全案", orderNum = "6", replace = {"是_true", "否_false", "_null"})
    private Boolean broadcastContract;

    /**
     * 单据状态:0_待提交、1_审批中、2_审批通过、3_审批拒绝、4_已撤回、5_已作废。
     */
    @Excel(name = "单据状态", orderNum = "7", replace = {"待提交_0", "审批中_1", "审批通过_2", "审批拒绝_3", "已撤回_4", "已作废_9", "_null"})
    private Integer approvalStatus;

    /**
     * 审批状态
     */
    @Excel(name = "审批状态", orderNum = "8")
    private String flowStatusName;

    /**
     * 刊例总报价
     */
    @Excel(name = "刊例总报价", orderNum = "9", type = 10)
    private BigDecimal totalAmount;

    /**
     * 折扣比例
     */
    @Excel(name = "折扣比例", orderNum = "10", type = 10)
    private BigDecimal discountRate;

    /**
     * 折扣后合同金额=刊例总报价*折扣比例
     */
    @Excel(name = "系统计算合同总金额", orderNum = "11", type = 10)
    private BigDecimal discountAmount;

    /**
     * 商务确认合同金额
     */
    @Excel(name = "商务确认合同金额", orderNum = "12", type = 10)
    private BigDecimal businessAmount;


    @Excel(name = "形式合同类型", orderNum = "13")
    private String formalContractType;


    @Excel(name = "平台订单号", orderNum = "14")
    private String platformOrderNumber;

    /**
     * 我司合同主体(数据字典)
     */
    @Excel(name = "我司合同主体", orderNum = "15")
    private String companyContractSubject;

    /**
     * 客户签约主体(关联，默认取客户的开票抬头第一条数据)
     */
    @Excel(name = "客户签约主体", orderNum = "16")
    private String customerSignSubject;

    /**
     * 已开票金额
     */
    //@Excel(name = "已开票金额", orderNum = "17", type = 10)
    private BigDecimal invoicedAmount;

    /**
     * 合同签订日期（精确到天）
     */
    @Excel(name = "合同签订日期", format = "yyyy/MM/dd", orderNum = "18")
    private Date signDate;

    /**
     * 合同来源（数据字典）
     */
    @Excel(name = "合同来源", orderNum = "20")
    private String cooperateSource;

    /**
     * 品牌
     */
    // @Excel(name = "品牌", orderNum = "21")
    private String cooperateBrand;

    /**
     * 品牌 翻译
     */
    @Excel(name = "品牌", orderNum = "21")
    private String cooperateBrandName;

    /**
     * 合作产品
     */
    @Excel(name = "合作产品", orderNum = "23")
    private String cooperateProduct;

    /**
     * 计划回款日期（精确到天）
     */
    @Excel(name = "计划回款日期", format = "yyyy-MM-dd", orderNum = "24")
    private Date plannedPaymentDate;

    /**
     * 合作内容简介
     */
    @Excel(name = "合作简介", orderNum = "25")
    private String cooperateContent;

    /**
     * 是否为新客户首单
     */
    @Excel(name = "是否为新客户首单", orderNum = "26", replace = {"是_true", "否_false", "_null"})
    private Boolean customerFirstOrder;

    /**
     * 是否为平台代下单
     */
    @Excel(name = "是否为平台代下单", orderNum = "27", replace = {"是_true", "否_false", "_null"})
    private Boolean platformOrders;

    /**
     * 备注
     */
    @Excel(name = "备注", orderNum = "28")
    private String remark;

    /**
     * 创建人名称
     */
    @Excel(name = "创建人", orderNum = "29")
    private String createName;

    /**
     * 归档状态
     */
    @Excel(name = "归档状态", orderNum = "30", replace = {"待盖章_0", "待归档_1", "已归档_2"})
    private Integer archivingStatus;

    /**
     * 归档编号
     */
    @Excel(name = "归档编号", orderNum = "31")
    private String archivingCode;

    private Long departmentId;

    /**
     * 所属部门
     */
    @Excel(name = "所属部门", orderNum = "32")
    private String department;

    /**
     * 项目PM
     */
    @Excel(name = "项目PM", orderNum = "33")
    private String pmName;

    /**
     * 是否业绩共享
     */
    @Excel(name = "是否业绩共享", orderNum = "34", replace = {"是_true", "否_false", "_null"})
    private Boolean performanceShare;

    /**
     * 业绩共享人姓名
     */
    @Excel(name = "业绩共享人姓名", orderNum = "35")
    private String performanceSharerName;

    /**
     * 创建时间
     */
    @Excel(name = "创建时间", orderNum = "36", format = "yyyy/MM/dd HH:mm:ss")
    private Date createDate;

    /**
     * 修改人名称
     */
    @Excel(name = "修改人", orderNum = "37")
    private String updateName;

    /**
     * 修改时间
     */
    @Excel(name = "修改时间", orderNum = "38", format = "yyyy/MM/dd HH:mm:ss")
    private Date updateDate;

    /**
     * 直播金额
     */
    @Excel(name = "直播金额", orderNum = "39", type = 10)
    private BigDecimal liveAmount;


    /**
     * 广告金额
     */
    @Excel(name = "广告金额", orderNum = "40" , type = 10)
    private BigDecimal adAmount;

    /**
     * ---------------------直播合同---------------------
     */
    /**
     * 保证金
     */
    @Excel(name = "保证金", orderNum = "42", type = 10)
    private BigDecimal earnestMoney;

    /**
     * 合作类型
     */
    @Excel(name = "合作类型", orderNum = "43")
    private String cooperationType;

    /**
     * 主播
     */
    @Excel(name = "主播", orderNum = "45")
    private String anchorName;

    /**
     * 红人平台所在ID
     */
    private Long starPlatformInfoId;

    /**
     * 直播日期
     */
    @Excel(name = "直播日期", orderNum = "46", format = "yyyy/MM/dd")
    private Date liveDate;

    /**
     * 是否归档
     */
    @Excel(name = "是否归档", orderNum = "47", replace = {"否_1", "是_2", "_null"})
    private Integer isFile;

    /**
     * 开票形式
     */
    @Excel(name = "开票形式", orderNum = "48", replace = {"无需开票_0", "开票待定_1", "开票_2", "_null"})
    private Integer invoiceForm;

    /**
     * 开票类型
     */
    @Excel(name = "开票类型", orderNum = "49")
    private String invoiceType;

    /**
     * 开票内容
     */
    @Excel(name = "开票内容", orderNum = "50")
    private String invoiceContent;

    /**
     * 发票备注
     */
    @Excel(name = "发票备注", orderNum = "51")
    private String invoiceRemark;

    /**
     * 回款状态：0未回款；1部分回款；2已回款
     */
    @Excel(name = "回款状态", orderNum = "53", replace = {"未回款_0", "部分回款_1", "已回款_2", "_null"})
    private Integer payBackStatus;

    /**
     * 已回款金额
     */
    @Excel(name = "回款金额", orderNum = "54", type = 10)
    private BigDecimal payBackAmount;

    /**
     * 已执行金额
     */
    @Excel(name = "已执行金额", orderNum = "55", type = 10)
    private BigDecimal executedAmount;

    /**
     * 预估成本
     */
    @Excel(name = "收入合同预估成本", orderNum = "56", type = 10)
    private BigDecimal expectedAmount;

    /**
     * 合同标签
     */
    @Excel(name = "标签", orderNum = "57")
    private String contractTag;

    /**
     * 线下佣金应收金额
     */
    @Excel(name = "线下佣金应收金额", orderNum = "58")
    private BigDecimal offlineCommissionAmount;

    /**
     * 线下佣金结算状态：0待结算、1结算中、2待回款、3部分回款、4已回款
     */
    @Excel(name = "线下佣金结算状态", orderNum = "59", replace = {"待结算_0","结算中_1","待回款_2","部分回款_3","已回款_4"})
    private Integer offlineCommissionSettleStatus;

    private Long flowId;

    /**
     * 直播平台
     */
    @Excel(name = "直播平台", orderNum = "44")
    private String livePlatform;

    /**
     * 类目
     */
    @Excel(name = "类目", orderNum = "24")
    private String liveContractCategory;

    //v1.22新增

    /**
     * 是否含广告：0-否、1-是
     */
    @Excel(name = "是否含广告", orderNum = "25",replace = {"否_0","是_1"})
    private Integer containsAdvertising;

    /**
     * 线上佣金比例
     */
    @Excel(name = "线上佣金比例", suffix = "%", orderNum = "26")
    private String onlineCommissionRate;

    /**
     * 线下佣金比例
     */
    @Excel(name = "线下佣金比例", suffix = "%", orderNum = "27")
    private String offlineCommissionRate;

    /**
     * 坑位费
     */
    @Excel(name = "坑位费", orderNum = "28")
    private BigDecimal pitFeeAmount;

    /**
     * 保ROI服务费
     */
    @Excel(name = "保ROI服务费", orderNum = "29")
    private BigDecimal roiServiceFee;

    /**
     * ROI比例
     */
    @Excel(name = "保ROI", orderNum = "30")
    private String roiRate;

    /**
     * 项目PM-id
     */
    private Long pmId;

    /**
     * 是否保ROI：0否 1是
     */
    private Integer isRoi;
}